#include<bits/stdc++.h>
using namespace std;

int main(){
  int n,m;
  cin >> n >> m;
  vector<int> vn(n);
  vector<int> vm(m);
  vector<int> v;
  for(int i = 0; i < n; i++){
    cin >> vn[i];
    v.push_back(vn[i]);
  }
  for(int i = 0; i < m; i++){
    cin >> vm[i];
    v.push_back(vm[i]);
  }
  sort(v.begin(), v.end());
  for(int i = 0; i < v.size(); i++){
    if(i < v.size()-1)cout << v[i] << " ";
    if(i == v.size()-1)cout << v[i] << endl;
  }

  return 0;
}



//题目：合并两个有序数组
//
//描述：
//题目描述：给定两个升序排序的整数数组，将它们合并为一个升序数组。
//输入格式：
//第一行输入两个整数 n和 m，分别表示两个数组的长度。
//第二行输入 n 个整数，表示第一个数组的元素。
//第三行输入 m 个整数，表示第二个数组的元素。
//输出格式：
//输出一行，包含 n+m个升序排序后的整数。
//输入样例：
//3 3
//1 3 5
//2 4 6
//输出样例：
//1 2 3 4 5 6